package viewInterfaces;

import javax.swing.JPanel;

import modelInterfaces.ITest;

import controllerInterfaces.IControllerTestsPanel;

/**
 * Interfaces used for managing the list of test: add, edit, delete and copy.
 * 
 * @author Andy Cullache
 */
public interface IViewTestPanel extends IViewPanel {

	/**
	 * Sets the controller of instances that implements this interface.
	 * 
	 * @param myController      Test panel controller.
	 */
	public void SetController(IControllerTestsPanel myController);


	
	/**
	 * Return a panel from view that implement this interface.
	 * 
	 * @return      View panel.
	 */
	public JPanel GetPanel();

	
	
	/**
	 * Mark with a String the test to be defective.
	 */
	public void setTestUpdate();


	
	/**
	 * Start process for add a new test setup.
	 */
	public void StartToAddTestSetup();
	

	
	/**
	 * Start process for edit a existing test setup.
	 * @param index index of test setup to edit
	 */
	public void StartToEditTestSetup(ITest test);
	
	
	/**
	 * Start process for remove a existing test setup.
	 * @param index index of test setup to remove
	 */
	public void StartToRemoveTestSetup(ITest test);

	
	/**
	 * Start process for copy a existing test setup.
	 * @param index index of test setup to copy
	 */
	public void StartToCopyTestSetup(ITest test);


	/**
	 * Enables or disables all component of this panel, depending on the value of the parameter value.</br> 
	 * @param value	- If true, this component is enabled; otherwise this component is disabled  .
	 */	
	public void setEnabledAll(boolean value);		
}
